﻿using System;
using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class HistorialAcademicoService : BaseService, IHistorialAcademicoService
    {
        private IHistorialAcademicoDao _HistorialAcademicoDao;
        private IInstitucionesDao _InstitucionesDao;

        public IInstitucionesDao InstitucionesDao
        {
            get { return _InstitucionesDao; }
            set { _InstitucionesDao = value; }
        }

        public IHistorialAcademicoDao HistorialAcademicoDao
        {
            get { return _HistorialAcademicoDao; }
            set { _HistorialAcademicoDao = value; }
        }

        public IList<HistorialAcademico> GetAll()
        {
            return HistorialAcademicoDao.GetAll();
        }

        public HistorialAcademico GetById(HistorialAcademicoPk HistorialAcademicoPk)
        {
            return HistorialAcademicoDao.GetById(HistorialAcademicoPk);
        }

        public void Create(HistorialAcademico HistorialAcademico)
        {
            if (HistorialAcademico.HistorialAcademicoPk.CodigoInstitucion == 0)
            {
                Instituciones Institucion = HistorialAcademico.Institucion;
                InstitucionesDao.Save(Institucion);
                HistorialAcademico.HistorialAcademicoPk.CodigoInstitucion = Institucion.CodigoInstitucion;
            }

            HistorialAcademicoDao.Save(HistorialAcademico);
        }

        public void Delete(HistorialAcademicoPk HistorialAcademicoPk)
        {
            HistorialAcademicoDao.Delete(HistorialAcademicoPk);
        }

        public void Update(HistorialAcademico HistorialAcademico)
        {
            HistorialAcademicoDao.Update(HistorialAcademico);
        }


        public IList<HistorialAcademico> GetByCodigoInterno(int CodigoInterno)
        {
            return HistorialAcademicoDao.GetByAsociado(CodigoInterno);
        }
    }
}